// 用户登录状态
import { $login } from '@/api/user';
import { SET_ACCOUNT, SET_USERNAME, SET_TOKEN, SET_TYPE } from '../mutation-types';
import router from '@/router';
const user = {
    state: {
        account: '',//用户名
        username: '',//中文名（呢称）
        type: '',//权限 1：超级管理员（可以管理普通管理员的账号信息，增删查改，密钥增删查改）   2：普通管理员   3：观察员
        token: '',//令牌，登陆成功该用户会被分配一个唯一的令牌，专门代表这个用户登陆成功了。令牌有时效，由后台管理，如果时间到了，会自动退出，更安全。token可以防攻击
    },
    mutations: {
        [SET_ACCOUNT](state: any, account: any) {
            state.account = account
        },
        [SET_USERNAME](state: any, username: any) {
            state.username = username
        },
        [SET_TOKEN](state: any, token: any) {
            state.token = token
        },
        [SET_TYPE](state: any, type: any) {
            state.type = type
        }
    },
    actions: {
        LoginAction({ commit }: any, userInfo: any) {
            // 调用后台接口
            $login(userInfo).then(res => {
                if (res.data.msg == 'success') {
                    commit('SET_ACCOUNT', res.data.data.account)
                    commit('SET_USERNAME', res.data.data.username)
                    commit('SET_TYPE', res.data.data.type)
                    commit('SET_TOKEN', res.data.token)
                    // 登录成功路由跳转
                    router.push('/home/dashboard');
                }
            })
        },
        LogoutAction({ commit }: any) {
            commit('SET_ACCOUNT', '')
            commit('SET_USERNAME', '')
            commit('SET_TYPE', '')
            commit('SET_TOKEN', '')
            router.push('/login');
        }
    }
}
export default user;